import java.util.HashMap;
import java.util.Scanner;

public class lengthOfLongestSubstring {
    /**
     * 滑动窗口+双指针
     * 无重复字符的最长子串
     * @author ShakeJ
     * @date 2024/3/18
     */
    /**
     * 给定一个字符串，请找出其中不含有重复的最长子串的长度
     * 输入: s = "abcabcbb"
     * 输出: 3
     * 解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。
     */

//    public static int method(String s){
//        // 双指针
//        int left = 0;
//        int res = 0;
//        HashMap<Character,Integer>map=new HashMap<>();
//        int n=s.length();
//        char[] s1=s.toCharArray();
//        if(n==0){
//            return 0;
//        }
//        for(int right=0;right<n;right++){
//            if(map.containsKey(s1[right])){
//                left = Math.max(left, map.getOrDefault(s1[right],0)+1);
//            }
//            map.put(s1[right],right);
//            res = Math.max(res, right-left+1);
//        }
//        return res;
//        // 时间复杂度为O（n）
//    }


    public static String method1(String s){
        int n=s.length();
        int left=0;
        char[] s1=s.toCharArray();
        HashMap<Character, Integer>map=new HashMap<>();
        int maxLen=0;
        int start=0;
        if(n==0){
            return null;
        }
        for(int right=0;right<n;right++){
            if(map.containsKey(s1[right])){
                left = Math.max(left,map.getOrDefault(s1[right], 0)+1);
            }
            map.put(s1[right],right); //放入哈希表
            if(right - left+1 >maxLen){
                maxLen = right - left + 1;
                start = left;
            }
        }
        return s.substring(start,start+maxLen);
    }
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String s=in.next();
//        System.out.println(method(s));
        System.out.println(method1(s));
    }
}
